Julia の FFI
code:julia
ccall((function_name, library), returntype, (argtype1, ...), argvalue1, ...)
ccall(function_name, returntype, (argtype1, ...), argvalue1, ...)
ccall(function_pointer, returntype, (argtype1, ...), argvalue1, ...)
ライブラリ名で呼ぶ場合(1 番目)だが、自作ライブラリ(ここでは libfunc.so)を呼ぼうとして以下のように書くとエラーが出る(ソースコードは GitHub) code:julia
julia> ccall((:plus_func, "libfunc.so"), Int64, (Int64, Int64), 1, 2)
ERROR: could not load library "libfunc.so"
libfunc.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません
Stacktrace:
1 top-level scope at ./REPL1:1 というわけでこうする
code:julia
julia> ccall((:plus_func, "./libfunc.so"), Int64, (Int64, Int64), 1, 2)
3
パスを明示的に相対パスにしないといけないようだ